package _4_prototype

type Cloneable interface {
	Clone() Cloneable
}

type PrototypeManager struct {
	prototypes map[string]Cloneable
}

func NewPrototypeManager()  *PrototypeManager{
	return &PrototypeManager{
		prototypes:make(map[string]Cloneable),
	}
}


func (self *PrototypeManager)Get(name string)Cloneable{
	return self.prototypes[name]
}

func (self *PrototypeManager)Set(name string,object Cloneable)  {
	self.prototypes[name] = object
}